packages <- c("betareg", "lmtest", "dplyr", "car", "readr")
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)) install.packages(new_packages)

library(betareg)
library(lmtest)
library(dplyr)
library(car)

if (file.exists("Adatok.csv")) {
  file_path <- "Adatok.csv"
} else {
  file_path <- file.choose()
}

data <- read.csv(file_path, sep = ";", dec = ".", stringsAsFactors = FALSE, check.names = FALSE)

data <- data[, colnames(data) != ""]
colnames(data) <- gsub("-", "_", colnames(data))
colnames(data) <- gsub(" ", "", colnames(data))
colnames(data) <- gsub("[()]", "", colnames(data))

transform_beta <- function(y) {
  n <- length(y)
  return((y * (n - 1) + 0.5) / n)
}

data$pragmatikus_trans <- transform_beta(data$arany_pragmatikus6)
data$etika_trans <- transform_beta(data$arany_etika5)

data$nem <- as.factor(data$nem)

cat("\n======================================================\n")
cat(" EREDMÉNYEK: PRAGMATIKUS ESZKÖZHASZNÁLAT (6)\n")
cat("======================================================\n")

m1_prag <- betareg(pragmatikus_trans ~ kor + nem, data = data)
m2_prag <- betareg(pragmatikus_trans ~ kor + nem + 
                     MI_haszn_index + MI_aggod + MI_poz_ert, data = data)
m3_prag <- betareg(pragmatikus_trans ~ kor + nem + 
                     MI_haszn_index + MI_aggod + MI_poz_ert + 
                     IR + hivtud, data = data)

print(lrtest(m1_prag, m2_prag, m3_prag))
print(summary(m3_prag))
cat("\nPseudo R-squared (Modell 3):", m3_prag$pseudo.r.squared, "\n")

cat("\n======================================================\n")
cat(" EREDMÉNYEK: ETIKAI DIMENZIÓK (5)\n")
cat("======================================================\n")

m1_etika <- betareg(etika_trans ~ kor + nem, data = data)
m2_etika <- betareg(etika_trans ~ kor + nem + 
                      MI_haszn_index + MI_aggod + MI_poz_ert, data = data)
m3_etika <- betareg(etika_trans ~ kor + nem + 
                      MI_haszn_index + MI_aggod + MI_poz_ert + 
                      IR + hivtud, data = data)

print(lrtest(m1_etika, m2_etika, m3_etika))
print(summary(m3_etika))
cat("\nPseudo R-squared (Modell 3):", m3_etika$pseudo.r.squared, "\n")

cat("\n======================================================\n")
cat(" MULTIKOLLINEARITÁS ELLENŐRZÉSE (VIF)\n")
cat("======================================================\n")

vif_model <- lm(arany_pragmatikus6 ~ kor + nem + MI_haszn_index + MI_aggod + MI_poz_ert + IR + hivtud, data=data)
print(vif(vif_model))